baseUrl = "http://localhost:8080/boot";



if (!String.format) {
    String.format = function(format) {
        var args = Array.prototype.slice.call(arguments, 1);
        return format.replace(/{(\d+)}/g, function(match, number) {
            return typeof args[number] != 'undefined'
                ? args[number]
                : match
                ;
        });
    };
}


/***
 var template1="我是{0}，今年{1}了";
 var template2="我是{name}，今年{age}了";

 
 var result1=template1.format("loogn",22);
 var result2=template2.format({name:"loogn",age:22});
 * @param args
 * @returns {String}
 */
String.prototype.format = function(args) {
    var result = this;
    if (arguments.length > 0) {
        if (arguments.length == 1 && typeof (args) == "object") {
            for (var key in args) {
                if(args[key]!=undefined){
                    var reg = new RegExp("({" + key + "})", "g");
                    result = result.replace(reg, args[key]);
                }
            }
        }
        else {
            for (var i = 0; i < arguments.length; i++) {
                if (arguments[i] != undefined) {
                    //var reg = new RegExp("({[" + i + "]})", "g");//这个在索引大于9时会有问题，谢谢何以笙箫的指出
                    var reg= new RegExp("({)" + i + "(})", "g");
                    result = result.replace(reg, arguments[i]);
                }
            }
        }
    }
    return result;
}

//设置全局ajax请求返回 成功 拦截
$(document).ajaxSuccess(function (event, xhr, options) {
    var data = xhr.responseJSON;
    if (data != undefined) {
        if (data.code == 401) {
            logout();
            $('#pop-reg').modal();
        } else {
            console.log(options.url + "请求成功!")
        }
    }
})
//设置全局ajax请求 是header
// $(document).ajaxSend(function (event, xhr) {
//     xhr.setRequestHeader("token", localStorage.getItem('token')) ;
// });

$(document).ready(function () {

    //刷新验证码
    var verifyimg = $(".verifyimg").attr("src");
    $(".reloadverify").click(function () {
        var  phoneNum = $("#reg-mobile").val();
        if(phoneNum != "" && phoneNum != null){
            if (verifyimg.indexOf('?') > 0) {
                $(".verifyimg").attr("src", baseUrl+verifyimg+ phoneNum + '&random=' + Math.random());
            } else {
                $(".verifyimg").attr("src", baseUrl+verifyimg.replace(/\?.*$/, '')+ phoneNum + '?' + Math.random());
            }
        }else {
            layer.alert("请输入手机号")
        }
    });


    //鼠标滚轮事件
    $(window).scroll(function () {
        $("#index-navbar-init").addClass("hidden");
        $("#index-navbar-change").removeClass("hidden");
        if ($(document).scrollTop() == 0) {
            $("#index-navbar-init").removeClass("hidden");
            $("#index-navbar-change").addClass("hidden");
        }
    });

    //输入框不为空后样式
    $("#login-mobile").blur(function () {
        if ($("#login-mobile").val() != '') {
            $("#login-mobile").css('border', '1px solid #0390ff');
        } else {
            $("#login-mobile").css('border', '1px solid #cecece');
        }
    });

    $("#reg-usname").blur(function () {
        if ($("#reg-usname").val() != '') {
            $("#reg-usname").css('border', '1px solid #0390ff');
        } else {
            $("#reg-usname").css('border', '1px solid #cecece');
        }
    });

    $("#reg-imgverify").blur(function () {
        if ($("#reg-imgverify").val() != '') {
            $("#reg-imgverify").css('border', '1px solid #0390ff');
        } else {
            $("#reg-imgverify").css('border', '1px solid #cecece');
        }
    });

    $("#reg-mobile").blur(function () {
        if ($("#reg-mobile").val() != '') {
            $("#reg-mobile").css('border', '1px solid #0390ff');
        } else {
            $("#reg-mobile").css('border', '1px solid #cecece');
        }
    });
    $("#reg-verify").blur(function () {
        if ($("#reg-verify").val() != '') {
            $("#reg-verify").css('border', '1px solid #0390ff');
        } else {
            $("#reg-verify").css('border', '1px solid #cecece');
        }
    });

    //遮罩显示
    $("#index-navbar-change #login-btn").on('click', function () {
        $('#pop-login').modal();
    });
    $("#index-navbar-change #reg-btn").on('click', function () {
        $('#pop-reg').modal();
    });

    $("#index-navbar-init #login-btn").on('click', function () {
        $('#pop-login').modal();
    });
    $("#index-navbar-init #reg-btn").on('click', function () {
        $('#pop-reg').modal();
    });

    //登录到注册
    $("#pop-reg-a").on('click', function () {
        $("#close-login").trigger("click");
        $('#pop-reg').modal();
    });

    //注册到登录
    $("#reg-to-log").on('click', function () {
        $("#close-reg").trigger('click');
        $('#pop-login').modal();
    });




    isLogin();
});

/**
 * TODO
 * 判断是否已登录
 *  有token
 *      验证token是否有效
 *          有效
 *              登录按钮隐藏
 *              注册按钮改为退出
 *              去掉弹出 注册框事件 改为 点击事件为退出
 *  没token
 */
function isLogin() {
    //token是否还没失效
    var localtoken = localStorage.getItem('token');
    if(localtoken != "" && localtoken != null){
        var isLoginResult = myAjax('/pc/token/isvalid',{'token':localtoken} ,'GET');
        if(isLoginResult.code === 0){
            loginSucssBtnChang();
        }
    }
}
function getLoginVerify($this) {
    var mobile = $('input[name=login-mobile]').val();
    if (mobile == '') {
        layer.msg('请填写手机号码！');
        $("#login-mobile").focus();
        return false;
    }
    if (!/^1[3|4|5|7|8][0-9]{9}$/.test(mobile)) {
        layer.msg('手机号码格式不正确！');
        $("#login-mobile").focus();
        return false;
    }
    $this.removeAttr('onclick');
    var url = "../User/sendLoginVerify.html";
    $.getJSON(url, {
        mobile: mobile
    }, function (data) {
        //console.log(data);		
        if (data.error > 0) {
            console.log(data.msg);
            layer.msg(data.info);
            $this.attr('onclick', 'getLoginVerify($(this))');
            return false;
        } else {
            layer.msg(data.info);
            var time = 60;
            var countdown = setInterval(function () {
                if (time > 0) {
                    $this.text('已发送(' + time + ')');
                    time--;
                } else {
                    //刷新图形验证码					
                    $this.text('获取验证码');
                    $this.attr('onclick', 'getLoginVerify($(this))');
                    clearInterval(countdown);   
                }
            }, 1000);
        }
    });



}




/*注册*/
function submitForm($this) {
    var telephone = $('#reg-mobile').val(); //手机号
    if (telephone == '') {
        layer.msg('请填写手机号码！');
        $("#login-mobile").focus();
        return false;
    }
    if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(telephone)) {
        layer.msg('手机号码格式不正确！');
        $("#login-mobile").focus();
        return false;
    }
    var regEntity;
// <<<<<<< HEAD
    //TODO 手机号 与 短信验证码 不可为空

// =======
// >>>>>>> temp
    regEntity={
        'jpgCode':$("#reg-imgverify").val(),
        'telephone':$("#reg-mobile").val(),
        'validateCode':$("#reg-verify").val(),
    };
    var regResult = myAjax('/pc/register', regEntity, 'POST',"JSON");
    if(regResult.code === 0){
        //注册成功: 1: 右上角登录改成手机号,注册改成退出 2:写入token到本地储存
        localStorage.setItem('token',regResult.data.token);
// <<<<<<< HEAD
        $("#reg-btn").click(function () {
            logout();
        });
        //TODO 关闭注册框和遮罩层

        $(".modal").hide();
// =======
        //隐藏注册模态框
        $('#pop-reg').modal('hide');
        loginSucssBtnChang();
// >>>>>>> temp
        //隐藏掉图形验证框
        $("#captchaP").hide();
    }else {
        layer.msg(regResult.msg);
    }
}

/**
 * 登录/注册 成功 导航栏 登录与注册 按钮 的处理
 */
function loginSucssBtnChang() {
    //隐藏登录按钮
    $("#login-btn").hide();
    $("#reg-btn").text("退出");//注册变为退出
    

    //解除 注册/退出 按钮的点击事件
    $("#index-navbar-init #reg-btn").off()
    $("#index-navbar-init #reg-btn").click(function () {
        logout();

    });

}
/*登录*/
function submitLogin($this) {
    var telephone = $('#login-mobile').val(); //手机号
    if (telephone == '') {
        layer.msg('请填写手机号码！');
        $("#login-mobile").focus();
        return false;
    }
    if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(telephone)) {
        layer.msg('手机号码格式不正确！');
        $("#login-mobile").focus();
        return false;
    }
    // $this.text('登录中...');
    var result = myAjax('/pc/login/'+telephone, null, 'GET');
    if(result.code === 0){
        localStorage.setItem('token',result.data.token);
        loginSucssBtnChang();
        //隐藏注册模态框
        $('#pop-login').modal('hide');
        layer.msg("恭喜您！登录成功")
var  name=$("#hot-city").val().trim()
//         do{
//             forLogin();
//             forheming();
//         }while(name!=='')
        
if(name!==''){setTimeout("forheming()",1);forLogin();}

    }else {
        layer.msg(result.msg);
        return false;
    }

}
/*END*/
/**
 * 退出函数
 *  登录改登录,注册改注册
 *  并添加对应的登录与注册点击函数
 */
function logout() {
    //显示登录按钮
    $("#login-btn").show();
    $("#reg-btn").text("注册");
    //退出事件改成 显示 注册模态框事件
    $("#index-navbar-init #reg-btn").off();
    $("#index-navbar-init #reg-btn").on('click', function () {
        $('#pop-reg').modal();
    });
    localStorage.removeItem('token');
    var resultName = myAjax('/pc/logout', {"token": localStorage.getItem('token')}, 'GET');
}


function sendSms() {
    var telephone = $('#reg-mobile').val().trim(); //手机号
    var reg = /^1(3|4|5|6|7|8|9)\d{9}$/;
    if (!(reg.test(telephone))) {
        layer.msg('手机号有误，请重新填写');
        return false;
    }
    var count =60;
    $("#get-verify-a").html("倒计时" + count + "秒");
   timer = setInterval(function () {
        if (count == 0) {
            clearInterval(timer);//清除定时器
            $("#get-verify-a").attr("onclick","sendSms()");//取消禁用
            $("#get-verify-a").html("重发验证码");
            timer=-1
            code = ""; //清除验证码。如果不清除，过时间后，输入收到的验证码依然有效 
            return
        }else{
            //
            $("#get-verify-a").html("倒计时" + count + "秒");
            $("#get-verify-a").removeAttr('onclick');//去掉a标签中的onclick事件;//禁用按钮
            count--;
        }
    }, 1000);
    
    var captchaCode = $("#reg-imgverify").val();
    if(captchaCode == ""){
        captchaCode = "null"
    }

    var sandResult = myAjax('/pc/sandsms/'+telephone+"/"+captchaCode,null,'GET');
    //第二次之后出验证码
    if(sandResult.code === 0){
        layer.msg("验证码发送成功")
        //第二次之后出验证码
        if(sandResult.data > 2){
            $("#get-verify-img").attr("src",baseUrl+'/pc/sandsms/captcha.jpg/'+telephone);
            $("#captchaP").show();
        }
    }else {
        if(sandResult.code === 20001){
            $("#get-verify-img").attr("src",baseUrl+'/pc/sandsms/captcha.jpg/'+telephone);
            $("#captchaP").show();
        }
        layer.msg(sandResult.msg);
    }
}


/*与后台交互
 *URL:资源
 *Pram:查询条件
 *Way:GET/POST/PUT/DELETE
 *Type:JSON/普通对象
 * */
function myAjax(URL, Pram, Way,Type) {
    var objData = {};
    var contentType = "application/json";
    objData.msg = "";
    var pramData;
    URL = baseUrl + URL;
    if (Type == "JSON"){
        pramData = JSON.stringify(Pram);
    }else {
        contentType = "application/x-www-form-urlencoded";
        pramData = Pram;
    }
    $.ajax({
        type: Way,
        url: URL,
        data: pramData,
        dataType: 'json',
        contentType: contentType,
        async: false,
        cache: false,
        success: function (data) {
            objData = data;
        },
        error: function () {
            objData.msg = "error";
        }
    });
    return objData;
}